工作中一直用 svn ,用久了之后感觉还是存在一些说不出来的不方便。以前一直想要接触一下
git但总是因为没有项目可以实践。直到有一天突然想到可以将博文托管到github上啊,这样不就拥有了项目并且可以实践了吗,于是也就有了下面这篇连载文章,不定期更新~
官方文档是个好东西,一定要利用起来
准备要托管的文件
可以是项目代码,也可以是文本、图片任何类型文件。我这里就是几篇博文(markdown 格式)

初始化一个 git 项目
这里有两种方法:
在
github上直接通过图形化界面引导新建一个repository通过
commd line的方式在相应的项目文件夹下进行初始化。
第一种方式的具体过程如下:
打开
github上的个人主页, 点击New repository按钮。按照指导建立新仓库。

最够使用
git clone的方式克隆项目到本地
下面使用第二种方式:
纯命令行的方式,这种方式的思路其实和第一种是相反的。
第一种是通过可视化的方式在远程建立好代码仓库,再克隆到本地的时候就不需要再手动初始化了;
第二种方式则是先在本地初始化好git项目,然后后通过命令行的git 指令与远程的仓库进行链接,前提也还是要有一个空的仓库。
以前觉得图形化的方式很方便快捷,但是现在觉得纯命令行的方式使用起来更有成就感。
具体步骤如下:
进入需要存储项目的目录下,右键呼出
bash命令行窗口。1
2
3
4git init 项目名
e.g.
git init blog-demo
- 使用
git add remote与远程仓库链接
现在只是本地创建好了 git 项目,还需要和远程的仓库建立起链接才能将代码 push(推送) 到远程仓库。
注:这里有一个警告,当第一次建立链接后但还没有进行第一次
pull操作前,如果对远程仓库链接进行了git remote rename <oldname> <newname>的重命名操作pull的操作会出现non-fast-forward的错误。(暂无解决方案…)

- 使用
git remote -v查看远程状态
通过以上的操作,已经建立起了本地和远程仓库的链接,为下面的文件互相推送构建了基础。
pull 拉取远程仓库到本地
git pull origin master 上面新建的远程仓库只包含一个 README.md 文件,执行过这条指令过后本地仓库就与远程仓库状态同步。

相似的操作还有 git clone, git fetch, git merge 暂时不详细描述。相关参考
提交
git 的提交和 svn 的提交差别很大,这是由他俩原理决定的。
`
(未完,后期补)
添加 .gitignore 文件
.gitignore是告诉git哪些文件是忽略提交的。
1 | touch .gitignore // 创建文件 |
如果要忽略的文件在创建gitigonre 文件前已经checked in,需要运行一下命令移除。
$ git rm --cached README.md
注: 执行完成后,要定位到 .gitignore 文件所在路径进行 push
撤销修改
git checkout -- file 丢弃工作区的修改,产生以下两种情况:
修改后还未被放到暂存区,撤销修改到和版本库一样的状态
修改后已经
add到了暂存区,并且又做了修改。撤销为添加暂存区后的状态,然后使用git reset HEAD <filename>来撤销暂存区的修改。
以上都是本地还未
commit的情况。如果已经commit但还未push到远程仓库,则需要使用 版本回退
change remote
使用 https 方式 clone 下来的代码在每次 pull 或者 push 时都会要求输入用户名和密码。为了解决这个问题,我们需要将代码的远程仓库地址 remote 改为 SSH。 具体实现如下:
https -> SSH
1 | git remote set-url origin git@github.com:USERNAME/REPOSITORY.git |
SSH -> https
1 | git remote set-url origin https://github.com/USERNAME/REPOSITORY.git |
git pull --rebase
在本地进行了多次修改并且事先没有 git pull 就直接 git push 时会被阻止。这种情况下就需要先 git pull 之后才能继续。